package com.gzsxy.prototype.demo;

import java.util.Date;

/**
 * @author xiaolong
 * @version 1.0
 * @description: 客户端： 克隆
 * @date 2022/4/12 23:09
 */
public class Bilili {


    public static void main(String[] args) throws CloneNotSupportedException {

        //原型对象

//        Date date = new Date();
//        Video v1 = new Video("张晓龙", date);
//        System.out.println("v1=>"+v1);
//        System.out.println("v1=>hash"+v1.hashCode());
//
//        //v1克隆 v2
//        Video v2 = (Video) v1.clone(); //克隆出来的对象和原来是一样
//        System.out.println("v2=>"+v2);
//        System.out.println("v2=>hash"+v2.hashCode());


        //浅克隆（指的是当v1的date值改变后克隆后的v2也会变化，我们想要的是克隆后是一个单独的对象，不随之前对象值的改变而改变）
        Date date = new Date();
        Video v1 = new Video("张晓龙", date);
        Video v2 = (Video) v1.clone(); //克隆出来的对象和原来是一样
        System.out.println("v1=>"+v1);
        System.out.println("v2=>"+v2);
        System.out.println("=========================");
        date.setTime(231453435);
        System.out.println("v1=>"+v1);
        System.out.println("v2=>"+v2);
    }
}
